// 导出了验证用户名的方法
const uPattern = /^([a-zA-Z0-9_]{4,8}|[\u4e00-\u9fa5]{2,6})$/
export var validateName = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入账号名!'))
  } else if (!uPattern.test(value)) {
    callback(new Error('4到8位（字母，数字，下划线）'))
  } else {
    callback()
  }
}

// 导出了验证密码的方法
const pwdPattern = /^[a-zA-Z0-9_]{6,12}$/
export var validatePass = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入密码!'))
  } else if (!pwdPattern.test(value)) {
    callback(new Error('6到12位（字母，数字，下划线）'))
  } else {
    callback()
  }
}

// 导出修改密码的验证方法
const resetPwd = /^[a-zA-Z0-9_]{6,12}$/
export var validateNewPass = function(str, o) {
  return (rule, value, callback) => {
    if (value === '') {
      callback(new Error(`请输入${str}!`))
    } else if (!resetPwd.test(value)) {
      callback(new Error('6到12位（字母，数字，下划线）'))
    } else {
      // 如果别人先写的确认新密码，那么失去焦点还会触发确认新密码的事件
      if (o.passForm.checkPass !== '') {
        o.$refs.ruleForm.validateField('checkPass')
      }
      callback()
    }
  }
}

// 导出确认新密码的功能
export var validCheckPass = function(str, o) {
  return (rule, value, callback) => {
    if (value === '') {
      callback(new Error(`请输入${str}!`))
    } else if (!resetPwd.test(value)) {
      callback(new Error('6到12位（字母，数字，下划线）'))
    } else {
      // console.log('即使你满足非空验证和规则验证，也还要再看看是不是两次都一致')
      if (o.passForm.newPass !== value) {
        callback(new Error('两次输入的密码不一致'))
      }
      callback()
    }
  }
}
